// 枚举类型（enum）
/**
 * 随着计算机的不断普及，程序不仅只用于数值计算，还更广泛地用于处理非数值的数据
 * 例如：性别、月份、星期几、颜色、单位名、学历、职业等，都不是数值数据
 * 在其它程序设计语言中，一般用一个数值来代表某一个状态，这种处理方法不直观、易读性差
 * 如果能在程序中有相应含义的单词来代表某一状态，则程序就很容易阅读和理解
 * 也就是说，事先考虑到某一变量可能取的值，尽量用自然语言中含义清楚的单词来表示它的
 * 这种方法叫枚举方法，用这种方法定义的类型称枚举类型
 * enum 枚举名{
 *  标识符[=整型常数],
 *  标识符[=整型常数],
 *  标识符[=整型常数]
 * }
 */

{
  enum Color {blue, red=3, 'orange'}
  var c:Color = Color.blue
  console.log(c)  //1 标识符没有赋值，它的值就是下标
  
  c = Color.red
  console.log(c) //3
  c = Color.orange
  console.log(c) //4
  
  enum Err {'undefined' = -1, 'null'=-2, 'success'=1}
  let e:Err = Err.success
  console.log(e);
  
}